home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / perl5 / Debconf / AutoSelect.pm next >
Text File  |  2008-10-10  |  2KB  |  78 lines

  1. #!/usr/bin/perl -w
  2. # This file was preprocessed, do not edit!
  3.  
  4.  
  5. package Debconf::AutoSelect;
  6. use strict;
  7. use Debconf::Gettext;
  8. use Debconf::ConfModule;
  9. use Debconf::Config;
  10. use Debconf::Log qw(:all);
  11. use base qw(Exporter);
  12. our @EXPORT_OK = qw(make_frontend make_confmodule);
  13. our %EXPORT_TAGS = (all => [@EXPORT_OK]);
  14.  
  15.  
  16. my %fallback=(
  17.     'Kde'            =>    ['Dialog', 'Readline', 'Teletype'],
  18.     'Gnome'            =>    ['Dialog', 'Readline', 'Teletype'],
  19.     'Web'            =>    ['Dialog', 'Readline', 'Teletype'],
  20.     'Dialog'        =>    ['Readline', 'Teletype'],
  21.     'Gtk'            =>    ['Dialog', 'Readline', 'Teletype'],
  22.     'Readline'        =>    ['Teletype', 'Dialog'],
  23.     'Editor'        =>    ['Readline', 'Teletype'],
  24.     'Slang'            =>    ['Dialog', 'Readline', 'Teletype'],
  25.     'Text'            =>     ['Readline', 'Teletype', 'Dialog'],
  26.  
  27. );
  28.  
  29. my $frontend;
  30. my $type;
  31.  
  32.  
  33. sub make_frontend {
  34.     my $script=shift;
  35.     my $starttype=ucfirst($type);
  36.     if (! defined $starttype || ! length $starttype) {
  37.         $starttype = Debconf::Config->frontend;
  38.         if ($starttype =~ /^[A-Z]/) {
  39.             warn "Please do not capitalize the first letter of the debconf frontend.";
  40.         }
  41.         $starttype=ucfirst($starttype);
  42.     }
  43.  
  44.     my $showfallback=0;
  45.     foreach $type ($starttype, @{$fallback{$starttype}}, 'Noninteractive') {
  46.         if (! $showfallback) {
  47.             debug user => "trying frontend $type";
  48.         }
  49.         else {
  50.             warn(sprintf(gettext("falling back to frontend: %s"), $type));
  51.         }
  52.         $frontend=eval qq{
  53.             use Debconf::FrontEnd::$type;
  54.             Debconf::FrontEnd::$type->new();
  55.         };
  56.         return $frontend if defined $frontend;
  57.  
  58.         warn sprintf(gettext("unable to initialize frontend: %s"), $type);
  59.         $@=~s/\n.*//s;
  60.         warn "($@)";
  61.         $showfallback=1;
  62.     }
  63.  
  64.     die sprintf(gettext("Unable to start a frontend: %s"), $@);
  65. }
  66.  
  67.  
  68. sub make_confmodule {
  69.     my $confmodule=Debconf::ConfModule->new(frontend => $frontend);
  70.  
  71.     $confmodule->startup(@_) if @_;
  72.     
  73.     return $confmodule;
  74. }
  75.  
  76.  
  77. 1
  78.